
/*
 * Gustavo Sanchez 10313 
 * Algoritmos y estructura de datos
 * Seccion: 20
 */

import java.util.ArrayList;
import java.util.List;

public class Pila<E> implements Stack<E>{
    private int cont;
    private List<E> lista;
    
    public Pila(){
        lista = new ArrayList<E>();
        cont=0;
    }
    
    @Override
    public void push(E item) {
        lista.add(item);
        cont++;
    }

    @Override
    public E pop() {
        if(empty()){
            E temp;
            temp=lista.get(cont);
            lista.remove(cont);
            cont--;
            return temp;
        }
        else
        {
            return null;
        }
    }

    @Override
    public E peek() {
        return lista.get(cont);
    }

    @Override
    public int size() {
        return (cont+1);
    }
    @Override
    public boolean empty(){
        return (cont==0);
    }
    
    
}
